// 操作数库的对象  db
// 数据库：blog_database
// 数据表：pre_user

// 导入express
const express = require("express")
const router = express.Router()
const db = require("../common/db/index")
const Jwt = require("../common/jwt")
// const aes = require("../common/aes")

// 请求地址：http://localhost:3001/api/admin/login
// 参数：account, password
router.post("/login", async (req, res) => {
    let { account, password } = req.body;
    if (account == undefined || password == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    }
    else {
        // 先根据明文的账户检索数据库用户表，不限制role
        const sql = 'SELECT account,username,gender,imgUrl,createAt, password, id, role FROM pre_user WHERE account = ?';
        db.query(sql, [account])
            .then(
                result => {
                    // result 数组
                    if (result.length == 0) {
                        res.send({
                            msg: "不存在该用户",
                            code: 404
                        })
                    }
                    else {
                        // 检查用户是否被封禁（role为-2）
                        if (result[0].role == '-2') {
                            res.send({
                                msg: "该账号已被封禁，请更换账号登录或联系管理员解封",
                                code: -2
                            })
                            return
                        }

                        // 解密操作
                        // 通过布尔值 判断密码是否一致                                  
                        // let isLogin = aes.aesDecrypt(password, result[0].password)
                        // 直接比较密码（已注释掉加密验证）
                        let isLogin = password === result[0].password
                        if (isLogin) {
                            let user = result[0];//用户信息
                            // 用户id
                            let token = new Jwt(user.id).getToken();
                            res.send({
                                username: user.username,
                                account: user.account,
                                gender: user.gender,
                                createAt: user.createAt,
                                imgUrl: user.imgUrl,
                                token: token,
                                role: user.role || '0', // 返回用户的实际角色
                                msg: user.role == '1' ? "管理员账号登录成功" : "用户登录成功",
                                code: 200
                            })
                        }
                        else {
                            res.send({
                                msg: "密码错误",
                                code: -1
                            })
                        }
                    }

                },
                err => {
                    res.send({
                        code: 500,
                        err
                    })
                }
            )
    }
})


module.exports = router;